生命週期也是一個常見的面試問題,以 Laravel 為舉例,Apache 或是 NginX 將 Request 轉發到 PHP 後再轉到專案裡的 public/index.php ,便開始了一段由工程師安排好的旅程。從前面提到的 Route 到 Controller 到 Response 這段主架構,何嘗不像人類的出生、求學、工作、養老、歸去來兮呢?
當 env 的 APP_DEBUG = true 時,當有 Exception 發生時就會記一筆落落長的 log 到 storage/logs 底下,這些 Exception 就像是人生中突如其來的意外讓人措手不及。
例如:SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘xxx.xxx’ doesn't exist
這個例外代表找不到某個 Table 所以找不到某個值,這就像我不可能在門禁森嚴的帝寶面前跟警衛大喊放我回家一樣,一定會被抓到警察局的嘛
例如:Undefied index error
這個例外代表該物件裡面沒有指定的值,常發生在取回的物件如果是 NULL 的情況下,畢竟吃飯的時候如果帶著一個空空的錢包結帳是付不出錢那也是一個準備進警察局的概念。
logs 不僅會紀錄當下的錯誤,還會提供 Error Tracking ,讓開發者一步一步的理解到底是哪裡做錯了才會落到今日這步田地,唯一的好處是人生不能重來,但系統開發可以,只要還沒將該段 Code 推到正式環境上面,開發者都可以無限次的重現該 Error ,如果有搭配好的除錯工具如:XDebug ,甚至可以將錯誤的部分前進倒帶前進倒帶也會從此學到教訓下次不要再犯一樣得錯。

面試如同相親,雖然我沒有相親過,但我應該不會主動去選擇整天渾渾噩噩不知道自己在做什麼的人當夥伴,畢竟俗話說 戲如人生,人生如 Code,善用工具好好的一起當個全職上帝吧!